@@ -7,11 +7,7 @@ class ScenarioImportsController < ApplicationController |
||
| 7 | 7 |
@scenario_import = ScenarioImport.new(params[:scenario_import]) |
| 8 | 8 |
@scenario_import.set_user(current_user) |
| 9 | 9 |
|
| 10 |
- if @scenario_import.will_request_local?(scenarios_url) |
|
| 11 |
- render :text => 'Sorry, you cannot import a Scenario by URL from your own Huginn server.' and return |
|
| 12 |
- end |
|
| 13 |
- |
|
| 14 |
- if @scenario_import.valid? && @scenario_import.should_import? && @scenario_import.import |
|
| 10 |
+ if @scenario_import.valid? && @scenario_import.import_confirmed? && @scenario_import.import |
|
| 15 | 11 |
redirect_to @scenario_import.scenario, notice: "Import successful!" |
| 16 | 12 |
else |
| 17 | 13 |
render action: "new" |
@@ -50,7 +50,7 @@ class ScenarioImport |
||
| 50 | 50 |
@agent_diffs || generate_diff |
| 51 | 51 |
end |
| 52 | 52 |
|
| 53 |
- def should_import? |
|
| 53 |
+ def import_confirmed? |
|
| 54 | 54 |
do_import == "1" |
| 55 | 55 |
end |
| 56 | 56 |
|
@@ -111,10 +111,6 @@ class ScenarioImport |
||
| 111 | 111 |
@scenario || @existing_scenario |
| 112 | 112 |
end |
| 113 | 113 |
|
| 114 |
- def will_request_local?(url_root) |
|
| 115 |
- data.blank? && file.blank? && url.present? && url.starts_with?(url_root) |
|
| 116 |
- end |
|
| 117 |
- |
|
| 118 | 114 |
protected |
| 119 | 115 |
|
| 120 | 116 |
def parse_file |
@@ -317,7 +317,7 @@ describe ScenarioImport do |
||
| 317 | 317 |
end |
| 318 | 318 |
end |
| 319 | 319 |
|
| 320 |
- context "when an a scenario already exists with the given guid" do |
|
| 320 |
+ context "when an a scenario already exists with the given guid for the importing user" do |
|
| 321 | 321 |
let!(:existing_scenario) do |
| 322 | 322 |
_existing_scenerio = users(:bob).scenarios.build(:name => "an existing scenario", :description => "something") |
| 323 | 323 |
_existing_scenerio.guid = guid |
@@ -507,6 +507,31 @@ describe ScenarioImport do |
||
| 507 | 507 |
end |
| 508 | 508 |
end |
| 509 | 509 |
end |
| 510 |
+ |
|
| 511 |
+ context "when an a scenario already exists with the given guid for the a different user" do |
|
| 512 |
+ let!(:existing_scenario) do |
|
| 513 |
+ _existing_scenerio = users(:jane).scenarios.build(:name => "an existing scenario", :description => "something") |
|
| 514 |
+ _existing_scenerio.guid = guid |
|
| 515 |
+ _existing_scenerio.save! |
|
| 516 |
+ _existing_scenerio |
|
| 517 |
+ end |
|
| 518 |
+ |
|
| 519 |
+ describe "#import" do |
|
| 520 |
+ it "makes a new scenario" do |
|
| 521 |
+ expect {
|
|
| 522 |
+ scenario_import.import(:skip_agents => true) |
|
| 523 |
+ }.to change { users(:bob).scenarios.count }.by(1)
|
|
| 524 |
+ |
|
| 525 |
+ expect(scenario_import.scenario.name).to eq(name) |
|
| 526 |
+ expect(scenario_import.scenario.description).to eq(description) |
|
| 527 |
+ expect(scenario_import.scenario.guid).to eq(guid) |
|
| 528 |
+ expect(scenario_import.scenario.tag_fg_color).to eq(tag_fg_color) |
|
| 529 |
+ expect(scenario_import.scenario.tag_bg_color).to eq(tag_bg_color) |
|
| 530 |
+ expect(scenario_import.scenario.source_url).to eq(source_url) |
|
| 531 |
+ expect(scenario_import.scenario.public).to be_falsey |
|
| 532 |
+ end |
|
| 533 |
+ end |
|
| 534 |
+ end |
|
| 510 | 535 |
|
| 511 | 536 |
context "agents which require a service" do |
| 512 | 537 |
let(:valid_parsed_services) do |